<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//2.严格模式
			        //严格模式主要有以下限制。
					//变量必须声明后再使用
					//函数的参数不能有同名属性，否则报错
					//不能使用with语句
					//不能对只读属性赋值，否则报错
					//不能使用前缀 0 表示八进制数，否则报错
					//不能删除不可删除的属性，否则报错
					//不能删除变量delete prop，会报错，只能删除属性delete global[prop]
					//eval不会在它的外层作用域引入变量
					//eval和arguments不能被重新赋值
					//arguments不会自动反映函数参数的变化
					//不能使用arguments.callee
					//不能使用arguments.caller
					//禁止this指向全局对象
					//不能使用fn.caller和fn.arguments获取函数调用的堆栈
					//增加了保留字（比如protected、static和interface）
			//3.export命令
			
			    //3.1
//					export var firstName = 'Michael';
//					export var lastName = 'Jackson';
//					export var year = 1958;

			    //3.2
//			       	var firstName = 'Michael';
//					var lastName = 'Jackson';
//					var year = 1958;
//					export{firstName,lastName,year};

                //3.3 export命令除了输出变量，还可以输出函数或类（class）
//                  export function multiply(x, y) {
//					  return x * y;
//					};

                //3.4 错误写法（没有提供对外的接口）
//						export 1;// 报错
//						var m = 1;
//						export m;// 报错

                //3.5 正确写法
//                      // 写法一
//						export var m = 1;
//						
//						// 写法二
//						var m = 1;
//						export {m};
//						
//						// 写法三
//						var n = 1;
//						export {n as m};

                //3.6 export输出的变量就是本来的名字，但是可以使用as关键字重命名
//                  function v1() { ... }
//				    function v2() { ... }
//					export {
//					  v1 as streamV1,
//					  v2 as streamV2,
//					  v2 as streamLatestVersion
//					};
             
             //4.import命令
//                  import {firstName, lastName, year} from './module/profile.js';
//					function setName(element) {
//					  element.textContent = firstName + ' ' + lastName;
//					}

              //5.模块的整体加载
//                  import * as circle from '../module/circle.js'
//					console.log('圆面积：'+circle.area(4));
//					console.log('圆周长：'+circle.circumference(4));
               
               //6.export default命令
                   //第一组是使用export default时，对应的import语句不需要使用大括号
                   //第二组是不使用export default时，对应的import语句需要使用大括号。
                   //export default命令只能使用一次,所以，import命令后面才不用加大括号，因为只可能唯一对应export default命令。
//	                     	export default function(){
//								console.log('foo')
//							}

//	                     	export default function f(){
//								console.log('f')
//							}

//	                     	const f2 = function(){
//						    	console.log('f2')
//						    }
//						    export default f2
               //7.export与import的复合写法
               //8.模块的继承
               //9.跨模块常量
		</script>
	</body>
</html>
